<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
		var arr = [30,9,5,7,20,100,5];
		// 每次，次循环比比较交换最小的
		function bubble(arr){
			 
			for(var i=0;i<arr.length;i++){
				for(var j=i;j<arr.length-1;j++){
					if(arr[j]>arr[j+1]){
						var temp = arr[j];
						arr[j] = arr[j+1];
						arr[j+1] = temp;
					}
					 
				}
				 
			}
			
			return arr;
		}
		 
		// 找到 中间的，比中间小left，比中间大的right
	
		function quick(arr){
			console.log(arr.length,arr);
			if(arr.length<1){return arr};
			var index = Math.floor(arr.length/2);
			var left = [];
			var right = [];
			var center = arr.splice(index,1)[0];
			// console.log(center,index);
			for(var i=0;i<arr.length;i++){
				if(arr[i]<center){
					left.push(arr[i])
				}else{
					right.push(arr[i]);
				}
			}
			return quick(left).concat(center,quick(right));
		
			
		}
		
		// 每次，次循环找到最小的下标
		function select(arr){
			
			for(var i=0;i<arr.length;i++){
				var minIndex=i;
				for(var j=i+1;j<arr.length;j++){
					if(arr[minIndex]>arr[j]){
						minIndex = j;
					}
				}
				[arr[i],arr[minIndex]] = [arr[minIndex],arr[i]]
			}
			return arr;
		}
		
		// 插入  : 如果前面一位比 要插入的要大（前面的向后一位）
		// [30,9,5,7,20,100,5]; current=9,preIndex=0  [9,30,...]
		//  [30,9,5,7,20,100,5]; current=5,preIndex=0  [5,30,9,...]
		// //  [30,9,5,7,20,100,5]; current=7,preIndex=0  [5,7,30,9,...]
		function insert(arr){
			for(var i=1;i<arr.length;i++){
					var preIndex = i-1;
					current = arr[i];
					while( preIndex>=0&&arr[preIndex]>current){
						// 向后一移一位
						arr[preIndex+1] = arr[preIndex];
						 preIndex--;
					}
					arr[preIndex+1] = current; //插入
			}
			return arr;
		}
		// 选择
		</script>
	</body>
</html>
